$(document).ready(function()
{
	tabla_cargada();
	//// envio formularios
	$('#formulario').submit(function()
	{
		$.ajax(
		{
			type: 'POST',
			dataType: "json",
			url: $(this).attr('action'),
			data: $(this).serialize(),
			beforeSend: function(data)
			{
				//console.log(data);
			},
			error: function(error, status)
			{
				console.log('ocurrio un error !!' + error + status);
			},
			complete: function()
			{
				//$("#formulario").reset();
			},
			success: function(data)
			{
				console.log(data);
				$('#resultado').html(data);
				if (data.estado_consulta == "exitoso")
				{
					new Messi('se actualizo correctamente.', {
						title: 'se actualizo',
						titleClass: 'success',
						center: true,
						autoclose: 2000,
						closeButton: true
					});
				}
				else
				{
					new Messi('ocurrio un error en la actualizacion.', {
						title: 'error',
						titleClass: 'anim error',
						center: true,
						autoclose: 2000,
						closeButton: true
					});
				}
			}
		}).done(function(data)
		{
			$('#formulario').each(function()
			{
				this.reset();
				tabla_cargada();
			});
		});
		return false;
	});
	// auto complete
	$(function()
	{
		var availableTags = [
			"ActionScript",
			"AppleScript",
			"Asp",
			"BASIC",
			"C",
			"C++",
			"Clojure",
			"COBOL",
			"ColdFusion",
			"Erlang",
			"Fortran",
			"Groovy",
			"Haskell",
			"Java",
			"JavaScript",
			"Lisp",
			"Perl",
			"PHP",
			"Python",
			"Ruby",
			"Scala",
			"Scheme"
			];
		$("#buscar").autocomplete(
		{
			source: availableTags
		});
	}); // se cierra el auto complete
}); // cierrar el lector de jquery

function tabla_cargada()
{
	ocultar_form();
	// envia unos parametros post para cargar json y crear la tabla
	$.post(url_carga, {
		tabla: "usuarios",
		campos: campo,
		campo_buscar: "",
		valor_buscar: "",
		limite: ""
	}, function(data)
	{
		$("#thead").remove();
		$("#tbody").remove();
		$("#myTable").append("<thead id='thead'>");
		$("thead").append("<tr id='nombre_columna' >");
		$.each(data.registros[0], function(id, valor)
		{
			$("#nombre_columna").append("<th > " + id + "</th>");
		});
		$("#nombre_columna").append("<td> <a  href='#' onClick='mostrar_form(this.text);'> Agregar  </a> </td>");
		$("thead").append("</tr>");
		$("thead").append("</thead>");
		$("#myTable").append("<tbody  id='tbody'>");
		// genera el numero de array
		var num = data.registros.length;
		// ciclo for desde 0 hasta el numero array devuelto
		for (i = 0; i < num;)
		{
			// agrege una columna
			$("#tbody").append("<tr id='" + i + "' >");
			// recorreo el array y agrega filas con el resultado
			$.each(data.registros[i], function(id, valor)
			{
				$("#" + i).append("<td id='" + i + "' class='" + id + "'> " + valor + "</td>");
			}); // se cierra el ciclo each
			// se crean filas adicionales de eliminar y agregar
			$("#" + i).append("<td> <a class='" + data.registros[i].codigo + "'  href='#' onClick='buscar_registro(" + data.registros[i].codigo + ");'> Editar  </a> </td>");
			$("#" + i).append("<td> <a class='" + data.registros[i].codigo + "'  href='#' onClick='elimina_registro(" + data.registros[i].codigo + ");'> Eliminar  </a> </td>");
			$("#tbody").append("</tr>");
			i++;
		} // se cierra el ciclo for
		$("thead").append("</tbody>");
	}, "json") // se cierra el post
	.done(function(req, status)
	{
		console.log("second " + status);
	}).fail(function(data, error, status, req)
	{
		console.log("error" + error + status);
	}).always(function(req)
	{
		console.log("finished" + req);
	});
}

function mostrar_form(valor)
{
	document.getElementById('ejecuta').value = valor;
	$("#ocultar").show("slow");
}

function ocultar_form()
{
	$("#ocultar").hide("slow");
}

function buscar_registro(valor)
{
	$.post(url_carga, {
		campos: '*',
		campo_buscar: "codigo",
		valor_buscar: valor,
		limite: ''
	}, function(data)
	{
		mostrar_form('Editar');
		$.each(data.registros[0], function(id, valor)
		{
			document.getElementById("" + id + "").value = valor;
		});
	}, "json").done(function(data)
	{
		console.log("second success" + data);
	}).fail(function(data)
	{
		console.log("error" + data);
	}).always(function(data)
	{
		console.log("finished" + data);
	});
}

function elimina_registro(valor)
{
	$.post("componentes/crud.php", {
		codigo: valor,
		ejecuta: 'Eliminar'
	}, function(data)
	{
		tabla_cargada();
	}).done(function(data)
	{
		console.log("second success" + data);
	}).fail(function(data)
	{
		console.log("error" + data);
	}).always(function(data)
	{
		console.log("finished" + data);
	});
}